home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / program / asm32.zip / ASM32.DOC next >
Text File  |  1996-02-24  |  40KB  |  673 lines

  1.                 ASM32 version 3.4 Programmer's Toolkit
  2.             tools for 32-bit assembly-language programming
  3.      Copyright (C) 1993 - 1995 Douglas Herr - All rights reserved
  4.  
  5.  
  6. What is ASM32?
  7.  
  8. ASM32 is a library of assembly-language subroutines which provides many
  9. tools to access and use the 32-bit address space (up to 4 Gigabytes!) of
  10. 386 or better personal computers.  ASM32 is not a DOS extender, but can
  11. use either the CauseWay DOS extender or can work with a DPMI host.
  12.  
  13. DISTRIBUTION AND REGISTRATION
  14.  
  15. ASM32 is user-supported software, NOT public domain software.
  16. Possession of the ASM32 files entitles you to evaluate this product.
  17. If, after evaluation, you choose to use ASM32, you are expected to
  18. register with the library's author.  By registering, you will be entitled
  19. to use the latest version of ASM32, you will be entitled to low-cost
  20. upgrades, you will have confidence that the version of ASM32 you are using
  21. has not been altered by others, and you will be supporting my programming
  22. efforts.
  23.  
  24. Two levels of registration are available: For $25, you will recieve the
  25. most recent ASM32 as well as the EGA32 libraries, which are more
  26. compact, for EGA and VGA systems only; for $50 you will receive full
  27. source code to ASM32 subroutines along with the assembled libraries.
  28. If you first register at the $25 level, you may register for ASM32 source
  29. code at any time for $25.  Upgrades for either level of registration are
  30. $10.
  31.  
  32. Register by sending the registration fee to:
  33.  
  34.    Douglas Herr
  35.    P. O. Box 207
  36.    Sacramento, CA  95812
  37.    U.S.A.
  38.  
  39.    Telephone (916) 721-8762
  40.    CompuServe 71247,3542
  41.    Internet 71247.3542@compuserve.com
  42.  
  43. Please specify either 5 1/4 or 3 1/2 inch disks.  Bug reports (if any)
  44. should be sent to the same address.  If you wish to contact me by
  45. telephone, please call after 8:00 PM Pacific time so I can get my kids
  46. in bed.
  47.  
  48. Registration is a LICENSE fee, not a purchase of ASM32.  Registered users
  49. may use ASM32 or modified subroutines based on ASM32 source code in their
  50. own programs.  Registered programmers may distribute programs using ASM32
  51. subroutines without royalty payments.
  52.  
  53. ASM32 object files, ASM32 source code (unmodified or modified) and the
  54. ASM32 library and documentation remain the property of Douglas Herr.
  55. ASM32 source code, modified or unmodified, may not be re-distributed.
  56.  
  57.  
  58. DPMI DOS extender
  59.  
  60. DPMI is a standard DOS extender interface which permits normal access to
  61. the PC's DOS and BIOS functions while allowing access to the 4-gigabyte
  62. address space of the 386 (or better) computers.  Windows 3.1 is an example
  63. of a DPMI host.  To use Windows' DPMI capabilities, double-click on the
  64. MS-DOS prompt from the Main window.  You'll get a standard DOS prompt,
  65. and your programs will be able to run in 32-bit protected mode.
  66.  
  67.  
  68. CauseWay DOS extender
  69.  
  70. The CauseWay DOS extender is a commercial product which is required in
  71. order to use ASM32CW.LIB.  CauseWay must be purchased separately from
  72. ASM32.  Licence of ASM32 does not imply permission to use CauseWay.
  73.  
  74. The CauseWay DOS extender is a DPMI- and VCPI-compliant extender intended
  75. for Assembly-language programming.  CauseWay permits 16-bit segments,
  76. 32-bit segments and mixed 16- and 32-bit segment programs, and includes
  77. a CauseWay-extended debugger for all .EXE files linked with the CauseWay
  78. extender.  Best of all, CauseWay is affordable!  I have included in this
  79. ASM32 shareware package some pre-release documentation for CauseWay;
  80. CW-ASM.DOC should not be considered complete CauseWay documentation, but
  81. does illustrate CauseWay's capabilities.  CauseWay was initially released
  82. 1/1/1994.
  83.  
  84. For more information about the CauseWay extender and debugger, contact:
  85.  
  86. Devore Software and Consulting
  87. P. O. Box 4283
  88. Naperville, IL  60567-4283
  89.  
  90. Voice: (708) 717-6369
  91. Fax:   (708) 717-6373
  92.  
  93. CompuServe: 71540,62
  94. Internet: 71540.62@compuserve.com
  95.  
  96. The advantages of CauseWay over DPMI are many:
  97.  
  98. 1) CauseWay works on any 386 or better system, whether a DPMI host is
  99.    installed or not
  100.  
  101. 2) The CauseWay package includes the CWD debugger, which I have found to
  102.    be extremely helpful
  103.  
  104. 3) CauseWay will load your initialized code and data to high memory, making
  105.    much larger programs possible
  106.  
  107. 4) Michael Devore and John Wildsmith are always available on CompuServe to
  108.    answer questions about CauseWay.
  109.  
  110. I have no commercial ties with John or Michael; In my personal opinion,
  111. CauseWay is not only an excellent product, it's also a great value.
  112.  
  113. The ASM32 shareware package includes these files:
  114.  
  115. STARTCW.ASM     Startup code for CauseWay programs
  116. STARTDP.ASM     Startup code for DPMI programs
  117. ASM32CW.LIB     the ASM32 library, CauseWay NEAR model version
  118. ASM32DP.LIB     the ASM32 library, DPMI version
  119. ASM32.DOC       this introductory file
  120. DATA.DOC        string and integer data manipulation
  121. DISK.DOC        disk & file subroutines
  122. DPMI.DOC        information about the DPMI version of ASM32
  123. FLOAT.DOC       floating-point subroutines
  124. GRAPHICS.DOC    ASM32 graphics
  125. INPUT.DOC       keyboard input subroutines
  126. MODE.DOC        ASM32 screen mode subroutines
  127. MULTIWIN.DOC    text-mode multi-window subroutines
  128. SOLVE.DOC       ASM32 mathematical solutions
  129. SYSTEM.DOC      subroutines which determine PC status or equipment
  130. TEXT.DOC        text-mode video subroutines
  131. CWNEAR.INC      MODEL.INC memory model definition file for CauseWay programs
  132. DPMI.INC        MODEL.INC memory model definition file for DPMI programs
  133. DATASEG.INC     data segment definition INCLUDE file for your source code
  134. CODESEG.INC     code segment definition INCLUDE file for your source code
  135. E32.ZIP         archive of source and executable of 32-bit text editor
  136.                 produced with ASM32 and CauseWay extender
  137.  
  138. These files may be copied and distributed freely provided that all the
  139. above files are distributed together in unmodified or archived form
  140. provided that distribution charges on a floppy disk are less than $10.
  141. The ASM32 shareware package may also be distributed with other shareware
  142. or freeware programs on CD-ROM media.
  143.  
  144.  
  145. LIMITED LIABILITY & OTHER LEGAL STUFF
  146.  
  147. Since I am unable to supervise all uses of ASM32, I cannot be held
  148. responsible for any damages, either direct or incidental, resulting
  149. from the use or abuse of ASM32.  I have used ASM32 subroutines on
  150. a wide variety of equipment and have found the library to be highly
  151. compatible with common 386 and 486 PC equipment, but you must use this
  152. library at your own risk.  Try it before you buy it.
  153.  
  154.  
  155. COMPATIBILITY
  156.  
  157. ASM32 subroutines are intended for IBM-compatible personal computers
  158. with 386SX or better processor and PC-DOS or MS-DOS operating systems.
  159. I cannot provide support for use of ASM32 on other equipment or with
  160. other operating systems.
  161.  
  162.  
  163. ABBREVIATIONS for video boards
  164.  
  165. Most new 32-bit computers are sold with a VGA monitor, but older PCs
  166. are frequently upgraded to 32-bit power while retaining older video
  167. equipment.  Even a new computer may also be equipped with a monochrome
  168. monitor along with the VGA.  For these reasons ASM32 includes support for
  169. many video standards:
  170.  
  171. MDA   IBM-standard Monochrome Display Adapter
  172. CGA   IBM-standard Color Graphics Adapter (ugh!)
  173. MCGA  IBM-standard Multi-color Graphics Array
  174. EGA   IBM-standard Enhanced Graphics Adapter
  175. SEGA  EGA equipment with additional capabilities
  176. VGA   IBM-standard Video Graphics Array
  177. SVGA  VGA equipment with additional capabilities
  178. ATT   ATT 6300 and compatible Olivetti
  179. HGC   Hercules Graphics Card and compatibles
  180. HGC+  Hercules Graphics Card Plus
  181. InC   Hercules InColor Card
  182.  
  183.  
  184. OTHER ABBREVIATIONS
  185.  
  186. CF = Carry Flag
  187. DF = Direction flag
  188. SF = Sign Flag
  189. ZF = Zero Flag
  190.  
  191.  
  192. ASSUMPTIONS
  193.  
  194. Unless otherwise stated, ASM32 subroutines assume that:
  195.  
  196. 1) All strings are terminated with a NUL character.
  197.  
  198. 2) Subroutines with names including '$' may trash registers, and are
  199.    intended primarily for ASM32's internal use.
  200.    Documentation for many '$' subroutines is in SOURCE.DOC, provided to
  201.    registered ASM32 programmers.
  202.  
  203. 3) All ASM32 subroutines require a near call.  ASM32CW assumes
  204.    CauseWay's NEAR model, and that all selectors point to the NEAR segment.
  205.    ASM32DP subroutines are assembled with the
  206.  
  207.    .MODEL SMALL
  208.  
  209.    directive.
  210.  
  211. 4) ASM32 data types are:
  212.  
  213.    chr   1 byte
  214.    str   character string, normally terminated with ASCII 0 (NUL)
  215.    I2    2-byte signed integer
  216.    U2    2-byte unsigned integer
  217.    I4    4-byte signed integer
  218.    U4    4-byte unsigned integer
  219.    F4    4-byte floating point value, IEEE format
  220.    F8    8-byte floating point value, IEEE format
  221.  
  222.  
  223.  
  224. HOW DO I USE ALL THIS NEAT STUFF?
  225.  
  226. ASM32 source code has been tested with MASM versions 5.0 and 5.1, and
  227. with TASM versions 2.01, 3.0, 3.1 and 4.0.  To keep your source code
  228. usable with either the DPMI or CauseWay versions of ASM32, include
  229. the line
  230.  
  231. INCLUDE MODEL.INC
  232.  
  233. in your source code, and use
  234.  
  235. INCLUDE DATASEG.INC
  236.  
  237. and
  238.  
  239. INCLUDE CODESEG.INC
  240.  
  241. to declare your code and data segments.
  242.  
  243. Copy or rename either DPMI.INC or CWNEAR.INC to MODEL.INC and assemble
  244. normally:
  245.  
  246. MASM yoursrc;
  247.  
  248. Link with your object files this way:
  249.  
  250. (CauseWay)
  251. C:\>WL32 [options] startcw+yourobj,yourexe,yourmap,ASM32CW
  252.  
  253. (DPMI)
  254. C:\>TLINK /3 [options] startdp+yourobj,yourexe,yourmap,ASM32PM
  255. -or-
  256. C:\>LINK [options] startdp+yourobj,yourexe,yourmap,ASM32PM
  257.  
  258. Note that some older versions of MS-LINK do not handle 32-bit backward
  259. jumps correctly.  WL32 and TLINK do not have this problem.  MS-LINK
  260. version 5.13 works well; I assume that newer versions also will work.
  261.  
  262. Any program that calls an ASM32 subroutine must declare the subroutine as
  263. an external procedure:
  264.  
  265. extrn  gedit:near        ; tell assembler to assume that GEDIT is an external
  266.                          ; procedure to be linked later
  267.  
  268.  
  269. If you want to support only EGA or better video hardware, link with ASM32's
  270. EGA32 library, provided on registration:
  271.  
  272. (CauseWay)
  273. C:\>WL32 [options] yourobj,yourexe,yourmap,EGA32CW+ASM32CW
  274.  
  275. (DPMI)
  276. C:\>LINK [options] yourobj,yourexe,yourmap,EGA32DP+ASM32DP;
  277. -or-
  278. C:\>TLINK /3 [options] yourobj,yourexe,yourmap,EGA32DP+ASM32DP;
  279.  
  280. Some versions of WL32 will give you numerous error messages because of
  281. duplicate subroutine names in EGA32CW and ASM32CW, but as long as you
  282. specify EGA32CW before ASM32CW, the EGA version of the subroutine will be
  283. linked and your program will work properly.
  284.  
  285.  
  286. DOCUMENTATION
  287.  
  288. There's alot of stuff in ASM32, so I've tried to keep the documentation
  289. succinct.  Here's a general guide to ASM32's documentation:
  290.  
  291.  
  292.  
  293. SUBROUTINE:  a brief description
  294. Source:      the source code file (and other subroutines used)
  295.  
  296. Call with:   this tells you what data the subroutine expects
  297.              additional information may be found here
  298. Returns:     tells you what registers and/or flags contain useful info
  299.              Additional lines may include more specific information about
  300.              the register values returned.
  301. Uses:        registers and flags which may be changed
  302. Supports:    particular equipment or operating modes; this will not apply to
  303.              all subroutines.
  304. Example:     an example of how parameters are passed to the subroutine
  305.              and a typical use of the subroutine.
  306.  
  307.  
  308.  
  309. Documentation for ASM32 subroutines is in the following files:
  310.  
  311. Subroutine      description                                           .DOC file
  312.  
  313. $EDIT           editor module used by TEdit and GEdit                 INPUT.DOC
  314. $SSORT          generic Shell sort engine                              DATA.DOC
  315. ABSF4           get absolute value of 4-byte real number              FLOAT.DOC
  316. ABSF8           get absolute value of 8-byte real number              FLOAT.DOC
  317. ADDF4           add two 4-byte real numbers w/o x87                   FLOAT.DOC
  318. ADDF8           add two 8-byte real numbers w/o x87                   FLOAT.DOC
  319. ANSICOLOR       returns color attribute used by ANSI device driver     TEXT.DOC
  320. BB16MASK        create reverse image mask for 16-color bitblock    GRAPHICS.DOC
  321. BB16REV         reverse a 16-color bitblock right-to-left          GRAPHICS.DOC
  322. BB256OVL        overlay one 256-color bitblock on another          GRAPHICS.DOC
  323. BB256REV        reverse a 256-color bitblock right-to-left         GRAPHICS.DOC
  324. BEZIER          draw a bezier curve on the screen                  GRAPHICS.DOC
  325. BITBLOCKBYTES   calculate bytes required to save a bit block       GRAPHICS.DOC
  326. BITPLANEBYTES   calculate bytes to save a plane of bit block       GRAPHICS.DOC
  327. BLINK           turn blink attributes off or on                        TEXT.DOC
  328. BUFFERDIM       change logical graphics buffer dimensions          GRAPHICS.DOC
  329. C2F             convert degrees Celcius to degrees Fahrenheit         SOLVE.DOC
  330. CHRDEL          delete a character from an ASCIIZ string               DATA.DOC
  331. CHRNDEL         delete a character from an n-length string             DATA.DOC
  332. CIRCLEASPECT    modifies aspect ratio of circle                    GRAPHICS.DOC
  333. CLEARKEY        clears the keyboard's 'type-ahead' buffer             INPUT.DOC
  334. CMPF4           compare two float4 numbers                            FLOAT.DOC
  335. CMPF8           compare two float8 numbers                            FLOAT.DOC
  336. COLOR16         calculate color value for 16-color palette           SYSTEM.DOC
  337. COLOR32k        calculate color attribute for SVGA 32k-color modes GRAPHICS.DOC
  338. COLORATTR       calculates a color attribute byte                      DATA.DOC
  339. CRTINFO         returns video buffer, screen size, etc.                TEXT.DOC
  340. CSET            centers a string in a fixed field                      DATA.DOC
  341. CUBEFITF4       fit a cubic equation to a float4 point series         SOLVE.DOC
  342. CUBEFITF8       fit a cubic equation to a float8 point series         SOLVE.DOC
  343. CUBEFITI2       fit a cubic equation to an integer2 point series      SOLVE.DOC
  344. CUBEFITI4       fit a cubic equation to an integer4 point series      SOLVE.DOC
  345. CURSORCOLOR     enable InColor palette, set cursor color               TEXT.DOC
  346. CURSOROFF       make hardware cursor invisible at present location     TEXT.DOC
  347. CURSORON        move cursor to (row, col) and update cursor shape      TEXT.DOC
  348. DAYNAME         returns ASCII string for day number                    DATA.DOC
  349. DEFGMODE        ASM32 uses system graphics mode (default)          GRAPHICS.DOC
  350. DEG2RAD         convert degrees of arc to radians                     SOLVE.DOC
  351. DISKFREE        determines free disk space                             DISK.DOC
  352. DISKWP          determines if a floppy disk is writable                DISK.DOC
  353. DOTBAK          changes a file to a .BAK file                          DISK.DOC
  354. DRAWCIRCLE      draw a circle                                      GRAPHICS.DOC
  355. DRAWBOX         draw a rectangle on a graphics screen              GRAPHICS.DOC
  356. DRAWLINE        draw a line on a graphics screen                   GRAPHICS.DOC
  357. DRAWMODE        public byte modifying ASM32 graphics drawing mode  GRAPHICS.DOC
  358.  
  359. EXENAME         determine full path and name of executing program    SYSTEM.DOC
  360. EXESIZE         determine size of executable portion of .EXE file    SYSTEM.DOC
  361. F2C             convert degrees Fahrenheit to degrees Celcius         SOLVE.DOC
  362. F4TOI2          converts float4 value to an integer                   FLOAT.DOC
  363. F4TOI4          converts float4 value to a long integer               FLOAT.DOC
  364. FACTORIAL       calculate the factorial of an integer                 SOLVE.DOC
  365. FCLOSE          close a file managed by ASM32 buffered I/O system      DISK.DOC
  366. FCOPY           copies one file to another                             DISK.DOC
  367. FCOUNT          counts the number of files matching filespec mask      DISK.DOC
  368. FCREATE         create new file and initialize I/O buffer              DISK.DOC
  369. FEXIST          determines if a file exists                            DISK.DOC
  370. FFLUSH          flush file output buffer for specifed handle           DISK.DOC
  371. FGET            read specified number of bytes from a file buffer      DISK.DOC
  372. FGETCHR         read a character from a file buffer                    DISK.DOC
  373. FGETSTR         read an ASCII string from a file buffer                DISK.DOC
  374. FILELIST        creates a list of filenames matching filespec mask     DISK.DOC
  375. FILL4, FILL4B   fill a buffer with 4-byte data                         DATA.DOC
  376. FILL8, FILL8B   fill a buffer with 8-byte data                         DATA.DOC
  377. FILLAREA        fills an irregular area on a graphics screen       GRAPHICS.DOC
  378. FILLBOX         draw a filled rectangle on a graphics screen       GRAPHICS.DOC
  379. FILLCIRCLE      draw a filled circle                               GRAPHICS.DOC
  380. FILLPATTERN     define an optional pattern for FillArea & FillBox  GRAPHICS.DOC
  381. FINDMONO        determine if monochrome monitor is installed         SYSTEM.DOC
  382. FLOPPIES        determines the number of floppy drives installed     SYSTEM.DOC
  383. FLOPPYTYPE      determines the type of floppy drive installed        SYSTEM.DOC
  384. FOPEN           open a file and initialize buffered I/O                DISK.DOC
  385. FORCEGMODE      force ASM32 to use a graph mode                    GRAPHICS.DOC
  386. FPRIMEI2        calculates the derivative of a polynomial function    SOLVE.DOC
  387. FPRIMEI4        calculates the derivative of a polynomial function    SOLVE.DOC
  388. FPRIMEF4        calculates the derivative of a polynomial function    SOLVE.DOC
  389. FPRIMEF8        calculates the derivative of a polynomial function    SOLVE.DOC
  390. FPUT            write specified data to output file buffer             DISK.DOC
  391. FPUTCHR         writes a character to output file buffer               DISK.DOC
  392. FPUTCRLF        writes a CR+LF pair to output file buffer              DISK.DOC
  393. FPUTSTR         writes a string to output file buffer                  DISK.DOC
  394.  
  395. FSEEK           move file pointer for file opened by FOPEN             DISK.DOC
  396. FSIZE           determines the size of an open file                    DISK.DOC
  397. FSTRISTR        search text file for ASCIIZ string, case-insensetive   DISK.DOC
  398. FSTRSTR         search text file for ASCIIZ string, case-sensetive     DISK.DOC
  399. FVALUE          calculate future value of an even cash flow           SOLVE.DOC
  400. GBASEADDRESS    change ASM32 graphics default base address         GRAPHICS.DOC
  401. GCENTER         centers a string on a graphics screen              GRAPHICS.DOC
  402. GCLEAR          clears the active portion of a graphics screen     GRAPHICS.DOC
  403. GCOLOR          establish color used by ASM32 graphics             GRAPHICS.DOC
  404. GCOPY           copies one page of graphics memory to another      GRAPHICS.DOC
  405. GCURSOR         simulate text-mode cursor on graphics screen       GRAPHICS.DOC
  406. GEDIT           string editor for graphics modes                      INPUT.DOC
  407. GETBITBLOCK     saves a portion of a graphics screen in memory     GRAPHICS.DOC
  408. GETBITPLANE     saves one plane of a bit block in memory           GRAPHICS.DOC
  409. GETCMD          isolates multiple command line parameters              DATA.DOC
  410. GETCPU          determines the computer's CPU chip                   SYSTEM.DOC
  411. GETCRT          determine active monitor                             SYSTEM.DOC
  412. GETDOT          determine pixel value on graphics screen           GRAPHICS.DOC
  413. GETGSCREEN      save graphics screen image in memory               GRAPHICS.DOC
  414. GETKEY          returns next key pressed                              INPUT.DOC
  415. GETMARKED       returns filename marked by MarkFile                   INPUT.DOC
  416. GETSCREEN       save screen image in memory to restore later           TEXT.DOC
  417. GETVIEW         returns a pointer to graphics view area data       GRAPHICS.DOC
  418. GLOAD           loads a graphics screen saved by GSave             GRAPHICS.DOC
  419. GPAGE           changes active and displayed graphics page         GRAPHICS.DOC
  420. GPRINT          prints ASCIIZ string on a graphics screen          GRAPHICS.DOC
  421. GPRINTDOWN      prints ASCIIZ string vertically on graph screen    GRAPHICS.DOC
  422. GPRINTDOWNX     print string vertically on graph screen, 2x width  GRAPHICS.DOC
  423. GPRINTDOWN2X    print string vertically on graph screen, 2x size   GRAPHICS.DOC
  424. GPRINTUP        prints ASCIIZ string vertically on graph screen    GRAPHICS.DOC
  425. GPRINTUPX       print string vertically on graph screen, 2x width  GRAPHICS.DOC
  426. GPRINTUP2X      print string vertically on graph screen, 2x sixe   GRAPHICS.DOC
  427. GPRINTX         print string on a graphics screen, double width    GRAPHICS.DOC
  428. GPRINT2X        print string on a graphics screen, double size     GRAPHICS.DOC
  429. GPUTCHR         print character on graphics screen                 GRAPHICS.DOC
  430. GREP            search specified file(s) for text string               DISK.DOC
  431. GSAVE           saves a graphics screen as a disk file             GRAPHICS.DOC
  432. GUCURSOR        simulate underscore cursor on graphics screen      GRAPHICS.DOC
  433. HGRAPH          establish Hercules graphics mode using two pages       MODE.DOC
  434. HGRAPH0         establish Hercules graphics mode using one page        MODE.DOC
  435. HIDEMOUSE       make mouse cursor disappear                           INPUT.DOC
  436.  
  437. HRAM8029        establish 80-column, 29-row RamFont mode               MODE.DOC
  438. HRAM8043        establish 80-column, 43-row RamFont mode               MODE.DOC
  439. HRAM9025        establish 90-column, 25-row RamFont mode               MODE.DOC
  440. HRAM9029        establish 90-column, 29-row RamFont mode               MODE.DOC
  441. HRAM9043        establish 90-column, 43-row RamFont mode               MODE.DOC
  442. HSCROLL         scrolls a portion of the screen left or right          TEXT.DOC
  443. HTEXT           establish Hercules text mode                           MODE.DOC
  444. I2TOSTR         convert a 2-byte integer to an ASCIIZ string           DATA.DOC
  445. I4TOF4          convert a 4-byte integer to 4-byte real number        FLOAT.DOC
  446. I4TOSTR         convert a 4-byte integer to an ASCIIZ string           DATA.DOC
  447. ICOSINE         get integer cosine*64k                                SOLVE.DOC
  448. INSERT          control INSERT key status                            SYSTEM.DOC
  449. ISALPHA         determines if a keycode returned by GetKey is A - z   INPUT.DOC
  450. ISANSI          determines if ANSI is loaded and active              SYSTEM.DOC
  451. ISATT           determines if ATT 6300 display card is installed     SYSTEM.DOC
  452. ISDIGIT         determines if a keycode returned by GetKey is 0 - 9   INPUT.DOC
  453. ISEVGA          determines if an EGA or VGA is installed             SYSTEM.DOC
  454. ISHERC          determine if a Hercules card is installed            SYSTEM.DOC
  455. ISINE           get integer sine*64k                                  SOLVE.DOC
  456. ISLOWER         determines if a keycode returned by GetKey is a - z   INPUT.DOC
  457. ISMOUSE         determines if a mouse is installed                   SYSTEM.DOC
  458. ISSEVGA         determines if a Super EGA or Super VGA is installed  SYSTEM.DOC
  459. ISUPPER         determines if a keycode returned by GetKey is A - Z   INPUT.DOC
  460. ISVBE           detects VESA VBE video card                          SYSTEM.DOC
  461. JANEIN          German language version of YesNo                      INPUT.DOC
  462. KBDTYPE         determines type of keyboard and functions supported  SYSTEM.DOC
  463. KEYIFWAITING    returns first key if one waiting in keyboard buffer   INPUT.DOC
  464. KEYORBUTTON     returns either keypress or mouse button press         INPUT.DOC
  465. KEYWAITING      determines if a key is waiting in keyboard buffer     INPUT.DOC
  466. LINEFITF4       fit a line equation to point series                   SOLVE.DOC
  467. LINEFITF8       fit a line equation to point series                   SOLVE.DOC
  468. LINEFITI2       fit a line equation to point series                   SOLVE.DOC
  469. LINEFITI4       fit a line equation to point series                   SOLVE.DOC
  470. LINEPATTERN     defines an optional pattern to use with DrawLine   GRAPHICS.DOC
  471. LOADPCX         reads & decodes .PCX-format file                   GRAPHICS.DOC
  472. LSET            left-justifies a string in a field                     DATA.DOC
  473. LTRIM           removes leading blanks from an ASCIIZ string           DATA.DOC
  474. MARKCOUNT       count filenames marked in MarkFile list               INPUT.DOC
  475. MARKFILE        Display filename list and select one or more files    INPUT.DOC
  476. MASKEDIT        edit one or more fields within a non-editable mask    INPUT.DOC
  477. MATHCHIP        determine if 80x87 math coprocessor is installed     SYSTEM.DOC
  478. MAXF4, MAXF4B   determine maximum value in a real number array        FLOAT.DOC
  479. MAXF8, MAXF8B   determine maximum value in a real number array        FLOAT.DOC
  480. MAXI2, MAXI2B   determine maximum value in integer array               DATA.DOC
  481. MAXI4, MAXI4B   determine maximum value in long integer array          DATA.DOC
  482. MAXU2, MAXU2B   determine maximum value in unsigned integer array      DATA.DOC
  483. MAXU4, MAXU4B   determine maximum value in unsigned long integer array DATA.DOC
  484. MEMCOPY         safe copy checks for source, destination overlap       DATA.DOC
  485. MENUOPTION      define options for PullDown menu system               INPUT.DOC
  486.  
  487. MINF4, MINF4B   determine minimum value in a real number array        FLOAT.DOC
  488. MINF8, MINF8B   determine minimum value in a real number array        FLOAT.DOC
  489. MINI2, MINI2B   determine minimum value in integer array               DATA.DOC
  490. MINI4, MINI4B   determine minimum value in long integer array          DATA.DOC
  491. MINU2, MINU2B   determine minimum value in unsigned integer array      DATA.DOC
  492. MINU4, MINU4B   determine minimum value in unsigned long integer array DATA.DOC
  493. MLOAD           quickly loads a disk file into far memory              DISK.DOC
  494. MODE43          switch EGA to 80x43 text mode or VGA to 80x50 text     MODE.DOC
  495. MONTHNAME       returns ASCII string for month given month number      DATA.DOC
  496. MOUSELIMIT      limit mouse's range on screen                         INPUT.DOC
  497. MOUSEPOS        position mouse on the screen                          INPUT.DOC
  498. MOUSESTATUS     determine mouse location & buttons pressed            INPUT.DOC
  499. MOUSESAVE       save mouse state                                     SYSTEM.DOC
  500. MOUSERESTORE    restore previously saved mouse state                 SYSTEM.DOC
  501. MSAVE           save memory block as disk file                         DISK.DOC
  502. MULF4           multplies two 4-byte floating-point numbers w/o x87   FLOAT.DOC
  503. MWBORDER        draw border around window opened by MWOPEN         MULTIWIN.DOC
  504. MWCENTER        center a string in a window opened by MWOPEN       MULTIWIN.DOC
  505. MWCLEAR         clear a window opened by MWOPEN                    MULTIWIN.DOC
  506. MWCLOSE         close window opened with MWOPEN and release buffer MULTIWIN.DOC
  507. MWCLOSEALL      close all open windows and release window buffers  MULTIWIN.DOC
  508. MWDEFAULT       change MWOPEN default window status                MULTIWIN.DOC
  509. MWDISPLAY       display all unhidden windows in multiwindow system MULTIWIN.DOC
  510. MWFILL          fill a window opened by MWOPEN                     MULTIWIN.DOC
  511. MWHIDE          hide window in multiwindow display system          MULTIWIN.DOC
  512. MWHIDEALL       hide all windows in multiwindow display system     MULTIWIN.DOC
  513. MWINIT          initialize multi-window base screen                MULTIWIN.DOC
  514. MWNOBORDER      set "no border" bit in window status byte          MULTIWIN.DOC
  515. MWNOSHADOW      disable "shadow" effect for selected window        MULTIWIN.DOC
  516. MWOPEN          open a window in multi-window system               MULTIWIN.DOC
  517. MWPRINT         print string in window opened by MWOPEN            MULTIWIN.DOC
  518. MWPRINTCE       print string in window and clear to edge of window MULTIWIN.DOC
  519. MWSELECT        determine window visible at screen coordinates     MULTIWIN.DOC
  520. MWSHADOW        enable "shadow" effect for selected window         MULTIWIN.DOC
  521. MWTITLE         center a string at the top of a window             MULTIWIN.DOC
  522. MWTOP           move selected window to top of overlapping windows MULTIWIN.DOC
  523. MWUNHIDE        unhide window in multiwindow display system        MULTIWIN.DOC
  524. MWUNHIDEALL     unhide all windows in multiwindow display system   MULTIWIN.DOC
  525. NORMF4, NORMF4B normalize a float4 data series                        SOLVE.DOC
  526. NORMF8, NORMF8B normalize a float8 data series                        SOLVE.DOC
  527. NPVALUE         calculate net present value of an uneven cash flow    SOLVE.DOC
  528. OUINON          French language version of YesNo                      INPUT.DOC
  529. PALETTE16       update 16-color palette registers                    SYSTEM.DOC
  530. PAINT           change all color attributes on a text-mode screen      TEXT.DOC
  531. PATH            returns a PATH from the program's enviornment block    DATA.DOC
  532.  
  533. PAYMENT         calculate payment required given n, i, pv, fv         SOLVE.DOC
  534. PCXINFO         reads vital information about .PCX-format file     GRAPHICS.DOC
  535. PICKFILE        select filename from list                             INPUT.DOC
  536. PICKSTRING      select one from a list of strings                     INPUT.DOC
  537. POLAR2RECT      get rectangular coordinates from polar                SOLVE.DOC
  538. PSOLVEF4        solve a polynomial equation for y, given x            SOLVE.DOC
  539. PSOLVEF8        solve a polynomial equation for y, given x            SOLVE.DOC
  540. PSOLVEI2        solve a polynomial equation for y, given x            SOLVE.DOC
  541. PSOLVEI4        solve a polynomial equation for y, given x            SOLVE.DOC
  542. PULLDOWN        pull-down menu system; text mode                      INPUT.DOC
  543. PUTBITBLOCK     restores bit block saved by GetBitBlock            GRAPHICS.DOC
  544. PUTBITPLANE     restores bit plane saved by GetBitPlane            GRAPHICS.DOC
  545. PUTDOT          set a pixel on a graphics screen                   GRAPHICS.DOC
  546. PUTKEY          put a keycode in the keyboard's type-ahead buffer     INPUT.DOC
  547. PUTGSCREEN      restores graphics screen image saved by GetGScreen GRAPHICS.DOC
  548. PUTSCREEN       restores screen image saved by GetScreen               TEXT.DOC
  549. PVALUE          calculate present value of an even cash flow          SOLVE.DOC
  550. QFNAME          given a partial filename, returns full path+filename   DISK.DOC
  551. QUADFITF4       fit a quadratic equation to a data series             SOLVE.DOC
  552. QUADFITF8       fit a quadratic equation to a data series             SOLVE.DOC
  553. QUADFITI2       fit a quadratic equation to a data series             SOLVE.DOC
  554. QUADFITI4       fit a quadratic equation to a data series             SOLVE.DOC
  555. RAD2DEG         convert radians to degrees of arc                     SOLVE.DOC
  556. RANDOM          generates a near-random number                         DATA.DOC
  557. RECOLOR         change selected color attributes on a text-mode screen TEXT.DOC
  558. RECT2POLAR      get polar coordinates from rectangular                SOLVE.DOC
  559. RESETVIEW       restores defalt view area on active graphics page  GRAPHICS.DOC
  560. RSET            right-justifies a string in a field                    DATA.DOC
  561. RTRIM           removes trailing blanks from an ASCIIZ string          DATA.DOC
  562. SAMP2POP        stddev option                                         SOLVE.DOC
  563. SCALEF4         scale a float4 number by an integer power of 2        FLOAT.DOC
  564. SCALEF8         scale a float8 number by an integer power of 2        FLOAT.DOC
  565. SCREENBYTES     calculates bytes required to save screen image         TEXT.DOC
  566. SCREENORIGIN    control position of video buffer on screen         GRAPHICS.DOC
  567. SHOWGPAGE       change graphics page displayed on screen           GRAPHICS.DOC
  568. SHOWGPLANE      show one or more planes of 16-color EGA/VGA screen GRAPHICS.DOC
  569. SHOWMOUSE       make mouse cursor visible                             INPUT.DOC
  570. SHOWTPAGE       change video page shown on screen                      TEXT.DOC
  571. SINO            Spanish language version of YesNo                     INPUT.DOC
  572. SMALLTEXT       change GPrint default to 8x8 characters            GRAPHICS.DOC
  573. SNOWOFF         disables CGA snow control                              TEXT.DOC
  574. SNOWON          enables CGA snow control (ASM32 default)               TEXT.DOC
  575. SORTF4HI        sorts the values in a float4 array, highest first     FLOAT.DOC
  576. SORTF4LO        sorts the values in a float4 array, lowest first      FLOAT.DOC
  577. SORTF8HI        sorts a float8 array, highest first                   FLOAT.DOC
  578. SORTF8LO        sorts a float8 array, lowest first                    FLOAT.DOC
  579. SORTI2HI        sorts the values in an array of 2-byte integers        DATA.DOC
  580. SORTI4HI        sorts the values in an array of 4-byte integers        DATA.DOC
  581. SORTI2LO        sorts the values in an array of 2-byte integers        DATA.DOC
  582. SORTI4LO        sorts the values in an array of 4-byte integers        DATA.DOC
  583. SORTU2HI        sorts an array of unsigned 2-byte integers             DATA.DOC
  584. SORTU2LO        sorts an array of unsigned 2-byte integers             DATA.DOC
  585. SORTU4HI        sorts an array of unsigned 4-byte integers             DATA.DOC
  586. SORTU4LO        sorts an array of unsigned 4-byte integers             DATA.DOC
  587. STDDEVF4        calculate standard deviation of float4 series         SOLVE.DOC
  588. STDDEVF8        calculate standard deviation of float8 series         SOLVE.DOC
  589. STDDEVI2        calculate standard deviation of integer2 series       SOLVE.DOC
  590. STDDEVI4        calculate standard deviation of integer4 series       SOLVE.DOC
  591. STDTEXT         restore GPrint default characters                  GRAPHICS.DOC
  592. STR2VBUF        copies a string to the video buffer                    TEXT.DOC
  593. STRCPY          copy an ASCIIZ string to existing buffer               DATA.DOC
  594. STRNCPY         copy ECX bytes of an ASCII string to existing buffer   DATA.DOC
  595.  
  596. STRTOI4         converts an ASCII string to equivalent long integer    DATA.DOC
  597. STRNTOI4        converts n bytes of string to equivalent long integer  DATA.DOC
  598. STRCAT          catenates (adds) two strings                           DATA.DOC
  599. STRCHR          searches for a specified character in a string         DATA.DOC
  600. STRCMP          compare strings, case-sensetive                        DATA.DOC
  601. STRDUP          duplicates an ASCIIZ string                            DATA.DOC
  602. STRINS          combines string0 and string1 at specified position     DATA.DOC
  603. STRICMP         compare strings, case-insensetive                      DATA.DOC
  604. STRIPCHR        removes selected character from a string               DATA.DOC
  605. STRISTR         finds a substring in a string, case insensetive        DATA.DOC
  606. STRLEN          determines the length of an ASCIIZ string              DATA.DOC
  607. STRLWR          change upper-case characters in a string to lower      DATA.DOC
  608. STRNCHR         searches n bytes of a string for for a character       DATA.DOC
  609. STRNDUP         duplicates n characters of a string                    DATA.DOC
  610. STRNLWR         changes n bytes in string to lower case                DATA.DOC
  611. STRNRCHR        finds the last character matching AL in n bytes        DATA.DOC
  612. STRNREV         reverses n bytes of an ASCIIZ string                   DATA.DOC
  613. STRNSET         sets n characters in a string to specified character   DATA.DOC
  614. STRNUPR         changes n bytes in string to upper case                DATA.DOC
  615. STRREV          reverses all characters in an ASCIIZ string            DATA.DOC
  616. STRRCHR         finds the last byte in an ASCIIZ string matching AL    DATA.DOC
  617. STRRSTR         finds the last substring in a string, case sensetive   DATA.DOC
  618. STRSET          sets all characters in a string to specified character DATA.DOC
  619. STRSPACE        creates a new string of space characters               DATA.DOC
  620. STRSTR          finds a substring in a string, case sensetive          DATA.DOC
  621. STRUPR          changes lower-case characters in string to upper case  DATA.DOC
  622. SVGA132         set 132-column text modes on SEGA and SVGA systems     MODE.DOC
  623. SVGA16          set 800x600 or 1024x768 16-color mode                  MODE.DOC
  624. SVGA256         set 256-color mode up to 1024x768 pixels               MODE.DOC
  625. SVGA32k         set 32k-color mode up to 1280x1024 pixels              MODE.DOC
  626. SWAPB           swaps data areas                                       DATA.DOC
  627. SYS2UC          convert system coordinates to user coordinates     GRAPHICS.DOC
  628. TCENTER         prints a string on the screen, centered horizontally   TEXT.DOC
  629. TCOPY           copies one page of text-mode video memory to another   TEXT.DOC
  630. TCLEAR          clears text-mode screen with specified color attribute TEXT.DOC
  631. TEDIT           string editor for text modes                          INPUT.DOC
  632. TFILL           fill text-mode screen with specified character & color TEXT.DOC
  633. TGETCHR         read character and color attribute from text screen    TEXT.DOC
  634. TLOAD           loads a screen image disk file saved by TSave          TEXT.DOC
  635. TMOUSELIMIT     limit mouse's range of motion on text screen          INPUT.DOC
  636. TOCOLOR         switch system to color monitor or color text mode      MODE.DOC
  637. TOLOWER         converts keycode from GetKey to lower case            INPUT.DOC
  638. TOMONO          switch system to monochrome monitor or mono text mode  MODE.DOC
  639. TOUPPER         converts keycode from GetKey to upper case            INPUT.DOC
  640. TPAGE           changes active page and shows active page              TEXT.DOC
  641. TPRINT          print ASCIIZ string directly to video buffer           TEXT.DOC
  642. TPRINTCE        print ASCIIZ string & clear to end of line             TEXT.DOC
  643. TPRINTL         print directly to video buffer, lower case             TEXT.DOC
  644. TPRINTU         print directly to video buffer, upper case             TEXT.DOC
  645. TPUTCHR         write one character to video buffer                    TEXT.DOC
  646. TSAVE           saves a screen image as a disk file                    TEXT.DOC
  647.  
  648. UC2SYS          convert user coordinates to system coordinates     GRAPHICS.DOC
  649. UCINIT          initialize user-defined coordinates                GRAPHICS.DOC
  650. UCURSORON       move cursor to (row, col), change to underscore        TEXT.DOC
  651. USE32K, USE64K  Hercules memory configuration control                SYSTEM.DOC
  652. USEGPAGE        changes active graphics page                       GRAPHICS.DOC
  653. USEGSCREEN      direct ASM32 graphics to off-screen buffer         GRAPHICS.DOC
  654. USEDEFAULTSCREEN restore ASM32 graphics to using video hardware    GRAPHICS.DOC
  655. USETPAGE        establish ASM32's active page                          TEXT.DOC
  656. VGA13X          use undocumented 256-color VGA modes                   MODE.DOC
  657. VIEWLIMIT       determine current mode's maximum dimensions        GRAPHICS.DOC
  658. VSCROLL         scroll a portion of the screen up or down              TEXT.DOC
  659. WCLEAR          clears a rectangular portion of a text-mode screen     TEXT.DOC
  660. WFILL           fills a window of a text-mode screen w/specified char  TEXT.DOC
  661. WFRAME          draws a box on a text-mode screen                      TEXT.DOC
  662. WPAINT          replaces all color attributes in screen window         TEXT.DOC
  663. WPRINT          print directly to a window with word wrap              TEXT.DOC
  664. WRECOLOR        changes selected color attributes in screen window     TEXT.DOC
  665. WRESTORE        restore window saved by WSAVE                          TEXT.DOC
  666. WSAVE           save screen window in memory                           TEXT.DOC
  667. WSIZE           calculates the memory required to save screen window   TEXT.DOC
  668. XMODE16         use super EGA /super VGA 16-color graphics modes       MODE.DOC
  669. XMODECLEAR      reset ASM32 graphics mode flags                        MODE.DOC
  670. XTOTHEY         calculate X to the Y power                            SOLVE.DOC
  671. YESNO           wait for 'Y' or 'N' key to be pressed                 INPUT.DOC
  672.  
  673.